package cn.tedu.micro.demo.client;

import com.rabbitmq.client.*;
import lombok.extern.slf4j.Slf4j;

/**
 * 通过这个类,定制一个静态方法
 * 在方法中,将长连接和短连接初始化,每次可以通过方法创建获取channel
 */
@Slf4j
public class RabbitChannelManager {
    public static Channel newChannel(){
        //先创建长连接,在获取短连接
        try{
            //1.长连接创建过程复杂,所以用到了工厂类
            ConnectionFactory factory = new ConnectionFactory();
            //2.提供创建连接的必要参数 ip port username password
            factory.setHost("192.168.8.100");
            factory.setPort(5672);
            factory.setUsername("admin");
            factory.setPassword("123456");
            //3.从工厂创建一个长连接
            Connection connection = factory.newConnection();
            //4.从长连接中获取一个短连接
            Channel channel = connection.createChannel();
            return channel;
        }catch (Exception e){
            log.error("创建长连接失败");
            throw new RuntimeException("创建长连接失败");
        }
    }
}
